07-ShiMetaAPI接口使用以及Demo APP ================================= 1、设备信息 ------------- 1.1、info_getApiVersion ----------------------- **函数名称:** info_getApiVersion(): string; **描述:** 获取目前API版本号 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let version = shimeta.info_getApiVersion() Logger.i(TAG,version) //输出结果 : V1.0.0-release **返回参数说明** +-------------------+-------------------+-----------------------------+ | **参数名** | **类型** | **说明** | +===================+===================+=============================+ | 返回值 | String | API版本号 | +-------------------+-------------------+-----------------------------+ 备注 ~~~~ - 无 1.2、info_getTotalStorage ------------------------- **函数名称:** info_getTotalStorage(): string; **描述:** 获取设备存储总容量 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let totalRam:string =shimeta.info_getTotalMemory() **返回参数说明** +--------------+--------------+----------------------------------------+ | **参数名** | **类型** | **说明** | +==============+==============+========================================+ | 返回值 | String | 设备存储总容量(KB) | +--------------+--------------+----------------------------------------+ .. _备注-1: 备注 ~~~~ - 无 1.3、info_getTotalMemory ------------------------ **函数名称:** info_getTotalMemory(): string; **描述:** 获取设备内存总容量 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let ret = shimeta.info_getTotalMemory() **返回参数说明** +----------------+----------------+------------------------------------+ | **参数名** | **类型** | **说明** | +================+================+====================================+ | 返回值 | String | 内存总容量(KB) | +----------------+----------------+------------------------------------+ .. _备注-2: 备注 ~~~~ - 无 1.4、info_getAvailMemory ------------------------ **函数名称:** info_getAvailMemory(): string; **描述:** 获取设备剩余可用内存容量 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let ret = shimeta.info_getAvailMemory() **返回参数说明** +-------------+-------------+------------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+==========================================+ | 返回值 | String | 剩余可用内存容量(KB) | +-------------+-------------+------------------------------------------+ .. _备注-3: 备注 ~~~~ - 无 1.5、info_getMCUVersion ----------------------- **函数名称:** info_getMCUVersion(): string; **描述:** 获取MCU版本 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let version: string = shimeta.info_getMCUVersion(); **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-4: 备注 ~~~~ - 无 2、显示管理 ------------- 2.1、disp_setDisplayRotation ---------------------------- **函数名称:** disp_setDisplayRotation(screen_id: number, degree: number): number; **描述:** 设置屏幕旋转角度 **参数:** +-----------+-------+-----+-------------------------------------------+ | * | **类 | * | **说明** | | *参数名** | 型** | *必 | | | | | 填 | | | | | ** | | +===========+=======+=====+===========================================+ | screen_id | n | 是 | 屏幕ID 0:主屏 1:副屏 | | | umber | | | +-----------+-------+-----+-------------------------------------------+ | degree | n | 是 | 0: Orientation::UNSPECIFIED | | | umber | | 1: Orientation::VERTICAL | | | | | 2:Orientation::HORIZONTAL | | | | | 3: Orientation::REVERSE_VERTICAL | | | | | 4: Orientation::REVERSE_HORIZONTAL | +-----------+-------+-----+-------------------------------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' //重启生效 let ret: number = shimeta.disp_setDisplayRotation(0, 2); **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-5: 备注 ~~~~ - 无 2.2、disp_getDisplayRotation ---------------------------- **函数名称:** disp_getDisplayRotation(screen_id: number): number; **描述:** 获取屏幕旋转角度 **参数:** +---------------+----------+-------+----------------------------------+ | **参数名** | **类型** | **必 | **说明** | | | | 填** | | +===============+==========+=======+==================================+ | screen_id | number | 是 | 屏幕ID 0:主屏 1:副屏 | +---------------+----------+-------+----------------------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' let ret: number = shimeta.disp_getDisplayRotation(0) **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-6: 备注 ~~~~ - 无 2.3、disp_setDisplayDensity --------------------------- **函数名称:** disp_setDisplayDensity(value: number): number; **描述:** 设置显示密度 DPI **参数:** +---------+---------+------+------------------------------------------+ | **参 | * | **必 | **说明** | | 数名** | *类型** | 填** | | +=========+=========+======+==========================================+ | dpi | number | 是 | DPI值,valid range is 80~640, | +---------+---------+------+------------------------------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' //重启生效 let ret:number = shimeta.disp_setDisplayDensity(dpi); **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-7: 备注 ~~~~ - 无 2.4、disp_getDisplayDensity --------------------------- **函数名称:** disp_getDisplayDensity(): number; **描述:** 获取屏幕DPI **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let dpi: number = shimeta.disp_getDisplayDensity() **返回参数说明** +-----------------------+-----------------------+---------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=====================+ | 返回值 | number | DPI值 | +-----------------------+-----------------------+---------------------+ .. _备注-8: 备注 ~~~~ - 无 2.5、disp_setLcdBackLightEnable ------------------------------- **函数名称:** disp_setLcdBackLightEnable(screen_id:number, enable:bool) **描述:** 设置屏幕背光开关 **API版本:** **参数:** +---------------+----------+------------------------------------------+ | **参数名** | **类型** | **说明** | +===============+==========+==========================================+ | screen_id | number | 0:第一路背光 1:第二路背光 | +---------------+----------+------------------------------------------+ | enable | bool | true:开 false:关 | +---------------+----------+------------------------------------------+ **返回参数说明** +-------------+-------------+------------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+==========================================+ | 返回值 | number | 调用结果,参考错误码 | +-------------+-------------+------------------------------------------+ 2.6、disp_getLcdBackLightEnable ------------------------------- **函数名称:** disp_getLcdBackLightEnable(screen_id:number) **描述:** 获取屏幕背光开关状态 **参数:** +---------------+----------+------------------------------------------+ | **参数名** | **类型** | **说明** | +===============+==========+==========================================+ | screen_id | number | 0:第一路背光 1:第二路背光 | +---------------+----------+------------------------------------------+ **返回参数说明** +--------------------+-------------------+----------------------------+ | **参数名** | **类型** | **说明** | +====================+===================+============================+ | 返回值 | number | 1:开 0:关 | +--------------------+-------------------+----------------------------+ 3、应用 ------------- 3.1、sys_setSystemBootApp ------------------------- **函数名称:** sys_setSystemBootApp(app_param: string): number; **描述:** 设置需要开机自启的应用 **参数:** +--------+-----+---+--------------------------------------------------+ | **参 | * | * | **说明** | | 数名** | *类 | * | | | | 型 | 必 | | | | ** | 填 | | | | | * | | | | | * | | +========+=====+===+==================================================+ | app | str | 是 | 三部分组成,(类名"/"包名"/"模块类型)举例: | | _param | ing | | com.o | | | | | hos.settings.MainAbility/com.ohos.settings/phone | +--------+-----+---+--------------------------------------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' //启动包名数据可用通过以下方式获取 getAppParam(bundleName) { let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE; try { bundleManager.getBundleInfo(protectName, bundleFlags,100).then((data) => { Logger.i(TAG, `getBundleInfo successfully. Data: ${JSON.stringify(data)}`); this.protectAbility = data.hapModulesInfo[0].mainElementName this.protectModuleName = data.hapModulesInfo[0].name }).catch((err: BusinessError) => { Logger.i(TAG, `getBundleInfo failed. Cause: ${err.message}`, ); }); } catch (err) { let message = (err as BusinessError).message; Logger.i(TAG, `getBundleInfo failed. Cause: ${message}`, ); } } //设置param为default 为取消开机启动应用 let param:string = this.protectAbility+"/"+bundleName+"/"+this.protectModuleName; let ret:number = shimeta.sys_setSystemBootApp(param) **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-9: 备注 ~~~~ - 无 3.2、sys_getSystemBootApp ------------------------- **函数名称:** sys_getSystemBootApp(): string; **描述:** 获取开机自启的应用参数 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' let ret:string = shimeta.sys_getSystemBootApp() **返回参数说明** +----------------+----------------+------------------------------------+ | **参数名** | **类型** | **说明** | +================+================+====================================+ | 返回值 | string | 设置的应用参数 | +----------------+----------------+------------------------------------+ .. _备注-10: 备注 ~~~~ - 无 3.3、sys_setDaemonsBundle ------------------------- **函数名称:** sys_setDaemonsBundle(bundleName: string, time: number): number; **描述:** 设置前台守护应用 **参数:** +----------+------+----+---------------------------------------------+ | ** | **类 | ** | **说明** | | 参数名** | 型** | 必 | | | | | 填 | | | | | ** | | +==========+======+====+=============================================+ | bu | st | 是 | 需要守护的应用包名,配置"0"则关闭 | | ndleName | ring | | | +----------+------+----+---------------------------------------------+ | time | nu | 是 | 当应用退出最前端后多久重新拉起应用,单位秒 | | | mber | | | +----------+------+----+---------------------------------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' shimeta.sys_setDaemonsBundle("com.ohos.settings", 10); //关闭进程守护,后面提供单独接口 shimeta.sys_setDaemonsBundle("default", 10); **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-11: 备注 ~~~~ - 无 3.4、sys_getDaemonsBundle ------------------------- **函数名称:** sys_getDaemonsBundle(): Promise; **描述:** 获取前台守护应用信息 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_getDaemonsBundle().then((value: string) => { let json: Record = JSON.parse(value) let bundleName = json.bundleName as string let time = json.time as number }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-------+--------+-----------------------------------------------------+ | * | ** | **说明** | | *参数 | 类型** | | | 名** | | | +=======+========+=====================================================+ | 返 | P | Promise对象,结果: | | 回值 | romise | {"bundleName":"com.ohos.settings","time":"10"} | +-------+--------+-----------------------------------------------------+ .. _备注-12: 备注 ~~~~ - 无 3.5、sys_setAutoPowerOnOff -------------------------- **函数名称:** sys_setAutoPowerOnOff(enable: number, week: string, onHour: number, onMinute: number, offHour: number, offMinute: number): number; **描述:** 设置定时开关机 **参数:** +------+----+---+------------------------------------------------------+ | ** | ** | * | **说明** | | 参数 | 类 | * | | | 名** | 型 | 必 | | | | ** | 填 | | | | | * | | | | | * | | +======+====+===+======================================================+ | en | nu | 是 | 1:打开 0:关闭 | | able | mb | | | | | er | | | +------+----+---+------------------------------------------------------+ | week | st | 是 | 日期,int[ | | | ri | | ]{0,0,0,0,0,0,0}代表7天内的重复,第一位是周日,1:设置 | | | ng | | 0:不设置 | +------+----+---+------------------------------------------------------+ | on | nu | 是 | 开机时间点 (小时) (24小时制) | | Hour | mb | | | | | er | | | +------+----+---+------------------------------------------------------+ | onMi | nu | 是 | 开机时间点 (分钟) | | nute | mb | | | | | er | | | +------+----+---+------------------------------------------------------+ | off | nu | 是 | 关机时间点 (小时) (24小时制) | | Hour | mb | | | | | er | | | +------+----+---+------------------------------------------------------+ | o | nu | 是 | 关机时间点 (分钟) | | ffMi | mb | | | | nute | er | | | +------+----+---+------------------------------------------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' //设置每天9:30开机,22:00关机 let array = [1, 1, 1, 1, 1, 1, 1] ret = shimeta.sys_setAutoPowerOnOff(1, array.toString(), 9, 30, 22, 0) **返回参数说明** +-------------+-------------+-----------------------------------------+ | **参数名** | **类型** | **说明** | +=============+=============+=========================================+ | 返回值 | number | 调用结果,参见错误码 | +-------------+-------------+-----------------------------------------+ .. _备注-13: 备注 ~~~~ - week 参数的数组第一位为星期日,依此类推 - 不设置重复,只设置一次时,设置的关机时间需要在当前时间之后。 - 关机时间需要和当前时间间隔3分钟以上;开机时间和关机时间之间也需要间隔3分钟以上 - 定时开关机错误码: +----------------------------+------+----------------------------------+ | **变量名** | ** | **解释** | | | 错误 | | | | 码** | | +============================+======+==================================+ | SET_SUCCESS | 0 | 成功 | +----------------------------+------+----------------------------------+ | ERROR_UNKNOWN | -1 | 错误 | +----------------------------+------+----------------------------------+ | ERROR_CONFIG | -2 | 参数有误 | +----------------------------+------+----------------------------------+ | ERROR_EXCEPTION | -5 | 异常 | +----------------------------+------+----------------------------------+ | ERROR_TIME_PASSED | 100 | 设置时间已过 | +----------------------------+------+----------------------------------+ | ERROR_COMPARE_ON_OFF_TIME | 101 | 开机时间和关机时间没有相差3分钟 | +----------------------------+------+----------------------------------+ | ERROR_COMPARE_NOW_OFF_TIME | 102 | 当前时间和关机时间没有相差3分钟 | +----------------------------+------+----------------------------------+ | ERROR_COMPARE_NOW_ON_TIME | 103 | 当前时间和开机时间没有相差6分钟 | +----------------------------+------+----------------------------------+ 3.6、sys_getAutoPowerOnOff -------------------------- **函数名称:** sys_getAutoPowerOnOff(): Promise; **描述:** 获取定时开关机信息 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_getAutoPowerOnOff().then((data: string) => { console.debug(TAG, "sys_getAutoPowerOnOff data:" + data); //输出:{"enable":"1","offHour":"15","offMinute":"49","onHour":"15","onMinute":"53","week":"1,1,1,1,1,1,1"} let json: Record = JSON.parse(data) let enable = json.enable as number ..... }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }) **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象,JSON结果 | +-----------------------+-----------------------+-----------------------+ .. _备注-14: 备注 ~~~~ - 无 3.7、sys_doSilentInstallApp --------------------------- **函数名称:** sys_doSilentInstallApp(hapPath:string,isRun:number,bundleName:string): number; **描述:** 静默安装应用 **参数:** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | hapPath | string | 待安装 | | | | 应用所在路径,系统绝对 | | | | 路径,不能使用沙箱路径 | +-----------------------+-----------------------+-----------------------+ | isRun | number | 安装后 | | | | 是否启动应用,1:启动, | | | | 0:不启动 | +-----------------------+-----------------------+-----------------------+ | bundleName | string | 需要启动的包名 | +-----------------------+-----------------------+-----------------------+ **返回参数说明** 无 **范例** .. code:: import shimeta from '@ohos.shimeta'; shimeta.sys_doSilentInstallApp("/data/Sogou.hap", 1,`com.OpenHarmony.sogou.input`) .. _备注-15: 备注 ~~~~ 4、IO ------------- 4.1、sys_setGpioDirection ------------------------- **函数名称:** sys_setGpioDirection(id: number, direction: number, value: number): Promise; **描述:** 设置 GPIO 输入输出状态 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; //设置IO口4 的方向为输出,状态为低电平 shimeta.sys_setGpioDirection(4,1,0).then((result: number) => { promptAction.showToast({ message: `sys_setGpioDirection result :${result}` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象 | | | | ,调用结果,参考错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-16: 备注 ~~~~ - 无 4.2、sys_getGpioDirection ------------------------- **函数名称:** sys_getGpioDirection(io:number): Promise; **描述:** 获取 GPIO 输入输出状态 **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | io | number | 是 | io口,从1-10 | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_getGpioDirection(4).then((value: number) => { promptAction.showToast({ message: `sys_getGpioDirection result :${value}` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象 | | | | ,调用结果,参见错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-17: 备注 ~~~~ - 无 4.3、sys_getGpioValue --------------------- **函数名称:** sys_getGpioValue(io:number): Promise; **描述:** 获取 GPIO 的电平状态 **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | io | number | 是 | io口,从1-10 | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_getGpioValue(4).then((value: number) => { promptAction.showToast({ message: `sys_getGpioValue result :${value}` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象 | | | | ,调用结果,参见错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-18: 备注 ~~~~ - 无 4.4、sys_setControl ------------------- **函数名称:** sys_setControl(type: number, enable: boolean): Promise; **描述:** 其它IO相关设置 (主板状态灯,模块电源) **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | type | number | 是 | 3:wifi power | | | | | 4:wifi reset | | | | | 5:led control | | | | | 6:speak power | | | | | 7:lvds power | | | | | 8:lvds reset | | | | | 9:4G power | | | | | 10:4G reset | | | | | 11:LAN power | | | | | 12:LAN reset | | | | | 13:SD power | | | | | 14:SD reset | | | | | 15:TP power | | | | | 16:TP reset | | | | | 17:GBE reset | | | | | 18:EDP | | | | | BackLight power | | | | | 19:Fan power | +-----------------+-----------------+-----------------+-----------------+ | enable | boolean | 是 | true:打开 | | | | | false:关闭 | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_setControl(5, this.ledEnable).then(() => { promptAction.showToast({ message: `sys_setControl type:5 ,Enable :${this.ledEnable}` }) this.ledEnable = !this.ledEnable }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象,调 | | | | 用结果,异常参见错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-19: .. note:: 普通应用只支持控制 LED灯(5)和风扇(19) 4.5、sys_getControl ------------------- **函数名称:** sys_getControl(type: number): Promise; **描述:** 获取其它IO相关状态 (主板状态灯,模块电源) **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | type | number | 是 | 3:wifi power | | | | | 4:wifi reset | | | | | 5:led control | | | | | 6:speak power | | | | | 7:lvds power | | | | | 8:lvds reset | | | | | 9:4G power | | | | | 10:4G reset | | | | | 11:LAN power | | | | | 12:LAN reset | | | | | 13:SD power | | | | | 14:SD reset | | | | | 15:TP power | | | | | 16:TP reset | | | | | 17:GBE reset | | | | | 18:EDP | | | | | BackLight power | | | | | 19:Fan power | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_getControl(5).then((result: number) => { this.ledEnable = result == 0 ? false : true Logger.d(TAG, "sys_getControl :" + result); }).catch((err: BusinessError) => { Logger.e(TAG, "error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象,调 | | | | 用结果,异常参见错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-20: .. note:: 普通应用只支持控制 LED灯(5)和风扇(19) 5、开发接口 ------------- 5.1、sys_setCommand ------------------- **函数名称:** sys_setCommand(command: string): Promise; **描述:** 通过Root执行指令命令,返回结果 **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | command | string | 是 | 例如:cat xxx | | | | | 等接口 | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; let command = `cat /proc/meminfo |grep MemTotal`; shimeta.sys_setCommand(command).then((result: string) => { promptAction.showToast({ message: result }) }).catch((error: BusinessError) => { Logger.e(TAG, `error code: ${error?.code}, error msg: ${error?.message}`); }) **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Pro | | | | mise对象,命令执行结果 | +-----------------------+-----------------------+-----------------------+ .. _备注-21: 备注 ~~~~ - 无 5.2、sys_copyFile ----------------- **函数名称:** sys_copyFile(srcFile: string, destFile: string): Promise; **描述:** 全局拷贝文件 **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | srcFile | string | 是 | 源地址,绝对路径 | +-----------------+-----------------+-----------------+-----------------+ | destFile | string | 是 | 目 | | | | | 标地址,绝对路径 | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_copyFile(srcFile, destFile).then(() => { Logger.d(TAG, `copyFile success:`) promptAction.showToast({ message: `拷贝成功` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象 | | | | ,调用结果,参见错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-22: 备注 ~~~~ - 无 5.3、dev_getFilesPathFromPkg ---------------------------- **函数名称:** dev_getFilesPathFromPkg(userId:number,bundleName:string): string; **描述:** 设置指定应用的绝对路径files地址 **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | userId | number | 是 | 应用userID号, | | | | | 普通应用为100 | +-----------------+-----------------+-----------------+-----------------+ | bundleName | string | 是 | bundleName | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' ///data/app/el2/100/base/com.shimeta.apidemo/haps/entry/files let ret = shimeta.dev_getFilesPathFromPkg(100, `com.shimeta.apidemo`) **返回参数说明** .. _备注-23: 备注 ~~~~ - 无 6、看门狗 ------------- 6.1、sys_setWatchDog -------------------- **函数名称:** sys_setWatchDog(enable: boolean, poweroffTime: number): Promise; **描述:** 设置开门狗开关状态 **参数:** +-----------------+-----------------+-----------------+-----------------+ | **参数名** | **类型** | **必填** | **说明** | +=================+=================+=================+=================+ | enable | boolean | 是 | true:打开 | | | | | false:关闭 | +-----------------+-----------------+-----------------+-----------------+ | poweroff_time | number | 是 | 不喂狗之后的 | | | | | 关机时间,默认 | | | | | 为60秒。单位:秒 | +-----------------+-----------------+-----------------+-----------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_setWatchDog(true, 60).then(() => { promptAction.showToast({ message: `sys_setWatchDog result success` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Prom | | | | ise对象,调用结果,错误 | | | | 会抛出异常,参见错误码 | +-----------------------+-----------------------+-----------------------+ .. _备注-24: .. note:: 接口中的poweroff_time参数暂未支持,默认60秒 6.2、sys_getWatchDog -------------------- **函数名称:** sys_getWatchDog(): Promise; **描述:** 获取开门狗开关状态 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_getWatchDog().then((result: number) => { Logger.d(TAG, "getWatchDog result:" + result); this.watchDogEnable = result == 1 ? `true` : `false` promptAction.showToast({ message: `sys_getWatchDog result :${result}` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象 | | | | ,结果参数:看门狗状态 | +-----------------------+-----------------------+-----------------------+ .. _备注-25: 备注 ~~~~ - 无 6.3、sys_setWatchDogFeed ------------------------ **函数名称:** sys_setWatchDogFeed(): Promise; **描述:** 开门狗喂狗 **参数:** 无 **范例** .. code:: import shimeta from '@ohos.shimeta' import { BusinessError } from '@ohos.base'; shimeta.sys_setWatchDogFeed().then(() => { promptAction.showToast({ message: `sys_setWatchDogFeed result success` }) }).catch((err: BusinessError) => { console.error("error message: " + err.message + ", error code: " + err.code); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | Promise | Promise对象 | +-----------------------+-----------------------+-----------------------+ .. _备注-26: 备注 ~~~~ - 无 7、网络管理 ------------- 7.1、net_getMacAddress ---------------------- **函数名称:** net_getMacAddress(type: string): string; **描述:** 获取网卡设备的MAC地址 **参数:** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | type | String | 网络类型 | | | | eth0:以太网e | | | | th1:以太网1wlan0:WIFI | | | | (暂不支持) | +-----------------------+-----------------------+-----------------------+ **范例** .. code:: import shimeta from '@ohos.shimeta' let ret:string = shimeta.net_getMacAddress("eth0") **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | String | MAC地址 | +-----------------------+-----------------------+-----------------------+ .. _备注-27: 备注 ~~~~ - 无 8、硬件控制 ------------- 8.1、dev_writePublicPartition ----------------------------- **函数名称:** dev_writePublicPartition(type:number, deviceId:number, areaId:number, start_addr:number, size:number, value:string) **描述:** 写入公共分区 **参数:** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | type | number | 类型 0:emmc 1:eeprom | +-----------------------+-----------------------+-----------------------+ | deviceId | number | 读取eeprom时,设备ID: | | | | 从0开始, | | | | 每个ID代表一个EEPROM | +-----------------------+-----------------------+-----------------------+ | areaId | number | 读取eepro | | | | m时,区域ID:从1开始, | | | | 每个ID代表一块区域 | +-----------------------+-----------------------+-----------------------+ | start_addr | number | 起始地址 | +-----------------------+-----------------------+-----------------------+ | size | number | 数据长度 | +-----------------------+-----------------------+-----------------------+ | value | string | 写入数据 | +-----------------------+-----------------------+-----------------------+ .. code:: import shimeta from '@ohos.shimeta' let emmcSrc = "ShiMeta_emmc" let buf = buffer.from(emmcSrc, 'utf-8'); shimeta.dev_writePublicPartition(0, 0, 0, 0, buf.length, emmcSrc, (result) => { console.debug("SHIMETA dev_writePublicPartition result:" + result); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | number | 调用结果,参考错误码 | +-----------------------+-----------------------+-----------------------+ 8.2、dev_readPublicPartition ---------------------------- **函数名称:** dev_readPublicPartition(type:number, deviceId:number, areaId:number, start_addr:number, size:number, value:string) **描述:** 读取分区 **参数:** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | type | number | 类型 0:emmc 1:eeprom | +-----------------------+-----------------------+-----------------------+ | deviceId | number | 读取eeprom时,设备ID: | | | | 从0开始, | | | | 每个ID代表一个EEPROM | +-----------------------+-----------------------+-----------------------+ | areaId | number | 读取eepro | | | | m时,区域ID:从1开始, | | | | 每个ID代表一块区域 | +-----------------------+-----------------------+-----------------------+ | start_addr | number | 起始地址 | +-----------------------+-----------------------+-----------------------+ | size | number | 数据长度 | +-----------------------+-----------------------+-----------------------+ .. code:: import shimeta from '@ohos.shimeta' let emmcSrc = "ShiMeta_emmc_public" let buf = buffer.from(emmcSrc, 'utf-8'); shimeta.dev_readPublicPartition(0, 0, 0, 0, buf.length, (result) => { console.debug("SHIMETA dev_readPublicPartition result:" + buffer.from(result).toString('utf-8')); }); **返回参数说明** +-----------------------+-----------------------+-----------------------+ | **参数名** | **类型** | **说明** | +=======================+=======================+=======================+ | 返回值 | number | 调用结果,参考错误码 | +-----------------------+-----------------------+-----------------------+